package model;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Eleitor {
    
    private String nome;
    private String cpf;
    private String titulo;
    private String rg;
    
    public static final String NOME_ARQUIVO = "C:/Urna/eleitor.txt";
    
    public Eleitor(String nome, String cpf, String titulo, String rg) {
        this.nome = nome;
        this.cpf = cpf;
        this.titulo = titulo;
        this.rg = rg;
    }

    public String getNome() {
        return nome.toUpperCase();
    }

    public void setNome(String nome) {
        this.nome = nome.toUpperCase().replace(";", "");
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getRg() {
        return rg;
    }

    public void setRg(String rg) {
        this.rg = rg;
    }
    
    public static void inserir(Eleitor eleitor) {
        
        try ( PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(new File(NOME_ARQUIVO), true)))){

                writer.write( getProxId()+ ";" +
                              eleitor.getNome()+ ";" +
                              eleitor.getCpf() + ";" +
                              eleitor.getTitulo()+ ";"+
                              eleitor.getRg()+ "\r\n");

                writer.close();
                
        } catch (IOException e) {
                e.printStackTrace();
        }
    }
    
    public static int getProxId() {
        
        String linha;
        int maxIdCargo = 0;
        
        try {

            BufferedReader reader = new BufferedReader(new FileReader(NOME_ARQUIVO));

            while ((linha = reader.readLine()) != null) {

                String[] t = linha.split(";");
                maxIdCargo = Integer.parseInt(t[0]);
            }
            reader.close();

        }catch(IOException e){
            e.printStackTrace();
        }
        
        return maxIdCargo+1;
    }
    
    public static boolean votou(String cpf) {
                
        String linha;
        
        try {

            BufferedReader reader = new BufferedReader(new FileReader(NOME_ARQUIVO));

            while ((linha = reader.readLine()) != null) {

                String[] t = linha.split(";");
                if(cpf.equals(t[2])){
                    return true;
                }
            }
            reader.close();

        }catch(IOException e){
            e.printStackTrace();
        }
        return false;
    }
}